package com.lh.api.vo;

import com.lh.common.enums.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @description: 一元夺宝订单详情对象
 * @author: gze
 * @create: 2020-05-20 10:39
 **/
@Data
@ApiModel("普通订单详情对象")
public class OrderDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单id")
    private Long oid;

    @ApiModelProperty(value = "订单号")
    private String orderItem;

    @ApiModelProperty(value = "普通订单状态 TOPAY:待付款;  INPAY:支付中; TOSHIP:待发货;  SHIPED:待收货; COMPLETED:已完成;  CANCELLED:已取消")
    private OrderStatusEnum orderStatus;

    @ApiModelProperty(value = "订单商品列表")
    private List<OrderShopVo> shopList;

    @ApiModelProperty(value = "运费总额")
    private BigDecimal freight;

    @ApiModelProperty(value = "商品总额")
    private BigDecimal shouldPrice;

    @ApiModelProperty(value = "实付款总额")
    private BigDecimal payPrice;

    @ApiModelProperty(value = "快递公司")
    private String expressName;

    @ApiModelProperty(value = "物流单号")
    private String expressCode;

    @ApiModelProperty(value = "倒计时多少秒")
    private Long remainingTime;

    @ApiModelProperty(value = "收件人")
    private String receiveRecipients;

    @ApiModelProperty(value = "收件人手机号")
    private String receivePhone;

    @ApiModelProperty(value = "区域")
    private String region;

    @ApiModelProperty(value = "详细地址")
    private String detailed;

    @ApiModelProperty(value = "订单时间")
    private Date createTime;

    @ApiModelProperty(value = "支付方订单号")
    private String payOrderNumber;

    @ApiModelProperty(value = "支付方式")
    private PayType payType;

    @ApiModelProperty(value = "支付时间")
    private Date payTime;

    @ApiModelProperty(value = "客服热线")
    private String customrPhone;

    @ApiModelProperty(value = "取消类型 PAYOVERTIME:支付超时已取消; PAYCANCEL:支付失败已取消，该字段为null时为用户主动取消")
    private CancelTypeEnum cancelType;

    @ApiModelProperty(value = "售后订单状态：PROCESSING->退款处理中；REFUNDSUCCESS:退款成功；RETURNING:退货处理中；TOWAREHOUSE:退货入库中: REFUNDING:退货退款中,RETURNSUCCESS:退货退款成功,REFUSERETURN:拒绝退货退款失败,REFUSEWAREHOUSE:拒绝入库退款失败,REFUSEREFUND:拒绝退款退款失败，RETURNTIMEOUT：退货超时")
    private AfterStatusEnum afterSaleStatus;

    @ApiModelProperty(value = "是否售后：NONE:无售后，TK：退款，SH：售后")
    private AfterSaleOrderTypeEnum afterSaleType;

    @ApiModelProperty(value = "服务单号")
    private String afterSaleId;
}
